Lambda函式又稱為匿名函式,不需要定義名稱的簡化函式,程式碼只含有一個return陳述句。
func = lambda 參數1, 參數2, ... : 運算式
等同於以下語法
def func(參數1, 參數2, ...):
運算式
return 回傳值
Lambda語法不需要def陳述句,其傳入參數可以多個並以逗號分隔。而運算式針對傳入參數來進行運算並只能有一行運算式。
其有助於將某些小型函式當作引數讓其他函式呼叫。以下舉個範例
sorted()可以用來排序可疊代物件中的元素,其語法為sorted(iterable, key=lambda parameter: expression)
ages = [
('Wendy', 15),
('Tony', 28),
('Bob', 6)
]
print(sorted(ages, key=lambda age: age[1]))
執行結果
結論:
Lambda函式運用一種方便快捷的處理方式,適度的使用讓程式碼簡潔了許多。
我們可以直接使用小型單行的lambda函式,不需以def陳述句定義新的命名函式。但是建議避免過度使用lambda撰寫複雜函式,複雜的邏輯運算還是優先以一般函式撰寫。